package com.atguig.a_annotation;

import java.time.DayOfWeek;
import java.util.Date;

/*
    注解的本质还是 接口 -> 是一种特殊接口类型


    如何给注解属性加默认值 :
        数据类型 属性名() default 默认值;
 */
public @interface MyAnno {
    //在注解类中定义属性 : 数据类型 属性名();

    //注解类中的属性的本质其实就是接口中的抽象方法 [自己省略了  public abstract ]
    //注解中的属性[抽象方法] 不是用来重写的 , 而是用来接收值 [default]

    //基本数据类型
    int num() default  100;

    boolean flag() default true;

    //String
    String name() default "张三" ;

    //Class
    Class clazz() default Date.class;

    //枚举类型
    DayOfWeek dayOfWeek() default DayOfWeek.WEDNESDAY;

    //注解类型
    Override override() default @Override;

    //以上类型元素的一维数组类型

    int[] value() ;

    DayOfWeek[] weeks() default {DayOfWeek.MONDAY,DayOfWeek.TUESDAY,DayOfWeek.WEDNESDAY};
}
